<!--
 * @Description: 
 * @ComposerRequire: 
 * @ComposerRemove: 
 * @Author: 阿海 <764882431@qq.com>
 * @Date: 2021-05-17 09:21:48
 * @LastEditTime: 2021-06-03 16:53:35
 * @LastEditors: 阿海
-->

<script>
//构建表格 + 处理数据 +绑定事件
function builderSoulTable(resData) {
    layui.use(['form', 'table', 'soulTable'], function () {
        var table = layui.table, form = layui.form, layer = layui.layer, soulTable = layui.soulTable;
        resData.excel_name = resData.excel_name == undefined ? (new Date()).getTime() + '.xlsx' : resData.excel_name + '.xlsx';
        //字段设置    
        var columns = builderTableColumns(resData);
        //是否开启行拖拽
        resData.row_drag = builderTableRowDrag(resData.row_drag, resData.row_drag_url,resData.row_drag_field,layer,$("#myTable"));
        //为表格接口增加token header==统一header
        var http = new Request({token_url:api.token_url,async:false,token_store_name:'table'});
        var page = get_url_param_value('page')==null?1:get_url_param_value('page');
       
        //数据列表  
        var myTable = table.render({
            id: 'myTable', //指定元素节点
            elem: '#myTable',//指定元素节点
            toolbar: '#myToolbar',//表格顶部左侧
            defaultToolbar: ['filter', { title: '导出选中数据', layEvent: 'exportCheckedExcel', icon: 'layui-icon-export' }, 'print'],//表格顶部右侧
            headers: http.headers, //创建头部
            url: resData.table_data_url + window.location.search,//json数据接口
            page: {
                curr: page
            },//是否开启分页
            request: {
                //请求接口参数
                pageName: 'page', //页码的参数名称，默认：page
                limitName: 'pageSize' //每页数据量的参数名，默认：limit
            },//设置请求参数
            parseData: function (res) {
                // console.log(res);
                var total = 0, data = [];
                if (res.code == 0) {
                    total = res.data.total;
                    data = res.data.data;
                }
                return {
                    "code": 0, //解析接口状态
                    "msg": '数据请求成功', //解析提示文本
                    "count": total, //解析数据长度
                    "data": data //解析数据列表
                };
            },//res 即为原始返回的数据 处理数据
            text: {
                none: '暂无相关数据，当前页码：第<span style="color:#FF5722">'+page+"</span>页"
            },//如果接口没有数据
            limit: 15, //每页显示的条数（默认：10）。
            limits: [10, 15, 20, 25, 30, 50, 100, 1000, 2500, 5000, 10000],//每页条数的选择项，默认：[10,20,30,40,50,60,70,80,90]。
            loading: true, //是否显示加载条（默认：true）
            even: true, //开启隔行背景
            rowDrag: resData.row_drag,//行拖拽处理
            drag: resData.drag, // 列拖动
            totalRow: resData.total_row, //是否表格下方统计行
            height: '',//留空则自适应
            cols: [columns], //数据接口对应的字段
            autoColumnWidth: {
                init: false
            },//自动调整列宽===表格初始化的时候自动调整列宽cols 中设置的 width 将失效
            filter: {
                // items:['column','data','condition','editCondition','excel','clearCache'],//记忆功能 对应项目
                // cache: false,//是否开启缓存
                // clearFilter: true,
            },//记忆功能 - 由于会占用浏览器资源，大型项目不建议开启
            excel: {
                on: true, //是否启用, 默认开启
                filename: resData.excel_name, // 文件名
                curPage: false,//是否只导出当前的分页的数据
                head: { // 表头样式
                    family: 'Calibri', // 字体
                    size: 12, // 字号
                    color: '000000', // 字体颜色
                    bgColor: 'FFFFFF' // 背景颜色
                },
                font: { // 正文样式
                    family: 'Calibri', // 字体
                    size: 12, // 字号
                    color: '000000', // 字体颜色
                    bgColor: 'FFFFFF' //背景颜色
                }
            },
            done: function () {
                soulTable.render(this);
            }
        });
         //工具栏绑定事件
         builderToolbarEvent(resData, soulTable, myTable, table, layer);
         //表格内部绑定事件
         builderTableEvent(resData, myTable, table, layer, form);
        
        // console.log(myTable);
        
    })
}
</script>

{include file='builder/table/table_event'}
{include file='builder/table/table_row_drag'}
{include file='builder/table/table_columns'}
{include file='builder/table/table_toolbar_event'}